<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>websocket::stream::write (2 of 2 overloads)</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Boost.Beast">
<link rel="up" href="../write.html" title="websocket::stream::write">
<link rel="prev" href="overload1.html" title="websocket::stream::write (1 of 2 overloads)">
<link rel="next" href="../write_buffer_size.html" title="websocket::stream::write_buffer_size">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../write.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../write_buffer_size.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h6 class="title">
<a name="beast.ref.boost__beast__websocket__stream.write.overload2"></a><a class="link" href="overload2.html" title="websocket::stream::write (2 of 2 overloads)">websocket::stream::write
          (2 of 2 overloads)</a>
</h6></div></div></div>
<p>
            Write a message to the stream.
          </p>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h0"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.synopsis"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.synopsis">Synopsis</a>
          </h7><pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">class</span> <a href="../../../../../../../../doc/html/boost_asio/reference/ConstBufferSequence.html" target="_top"><span class="bold"><strong>ConstBufferSequence</strong></span></a><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>
<span class="identifier">write</span><span class="special">(</span>
    <span class="identifier">ConstBufferSequence</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">buffers</span><span class="special">,</span>
    <span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span><span class="special">);</span>
</pre>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h1"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.description"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.description">Description</a>
          </h7><p>
            This function is used to synchronously write a message to the stream.
            The call blocks until one of the following conditions is met:
          </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
                The entire message is sent.
              </li>
<li class="listitem">
                An error occurs.
              </li>
</ul></div>
<p>
            This operation is implemented in terms of one or more calls to the next
            layer's <code class="computeroutput"><span class="identifier">write_some</span></code> function.
          </p>
<p>
            The current setting of the <a class="link" href="../binary.html" title="websocket::stream::binary"><code class="computeroutput"><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">binary</span></code></a> option controls whether
            the message opcode is set to text or binary. If the <a class="link" href="../auto_fragment.html" title="websocket::stream::auto_fragment"><code class="computeroutput"><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">auto_fragment</span></code></a> option is set,
            the message will be split into one or more frames as necessary. The actual
            payload contents sent may be transformed as per the WebSocket protocol
            settings.
          </p>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h2"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.parameters"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.parameters">Parameters</a>
          </h7><div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Name
                    </p>
                  </th>
<th>
                    <p>
                      Description
                    </p>
                  </th>
</tr></thead>
<tbody><tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">buffers</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      The buffers containing the entire message payload. The implementation
                      will make copies of this object as needed, but ownership of
                      the underlying memory is not transferred. The caller is responsible
                      for ensuring that the memory locations pointed to by buffers
                      remains valid until the completion handler is called.
                    </p>
                  </td>
</tr></tbody>
</table></div>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h3"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.return_value"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.return_value">Return
            Value</a>
          </h7><p>
            The number of bytes written from the buffers. If an error occurred, this
            will be less than the sum of the buffer sizes.
          </p>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h4"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.parameters0"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.parameters0">Parameters</a>
          </h7><div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Name
                    </p>
                  </th>
<th>
                    <p>
                      Description
                    </p>
                  </th>
</tr></thead>
<tbody><tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">ec</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Set to indicate what error occurred, if any.
                    </p>
                  </td>
</tr></tbody>
</table></div>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h5"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.exceptions"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.exceptions">Exceptions</a>
          </h7><div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Type
                    </p>
                  </th>
<th>
                    <p>
                      Thrown On
                    </p>
                  </th>
</tr></thead>
<tbody><tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">system_error</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Thrown on failure.
                    </p>
                  </td>
</tr></tbody>
</table></div>
<h7><a name="beast.ref.boost__beast__websocket__stream.write.overload2.h6"></a>
            <span class="phrase"><a name="beast.ref.boost__beast__websocket__stream.write.overload2.remarks"></a></span><a class="link" href="overload2.html#beast.ref.boost__beast__websocket__stream.write.overload2.remarks">Remarks</a>
          </h7><p>
            This function always sends an entire message. To send a message in fragments,
            use <a class="link" href="../write_some.html" title="websocket::stream::write_some"><code class="computeroutput"><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">write_some</span></code></a>.
          </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2016, 2017 Vinnie Falco<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../write.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../write_buffer_size.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
